The present disclosure herein relates to a communication system, and more particularly, to a low density parity check (LDPC) decoder using a binary logarithm and a decoding method thereof.
An LDPC code is known as an error correction code that is closest to the Shannon limit among forward error correction techniques. Accordingly, the LDPC code has been selected as an error correction code of several communication standards such as a wireless LAN, and storage media such as a solid state drive (SSD). In addition, the LDPC code is an integral part of an optical communication system supporting a data transmission rate over 100 Gbps, or an ultrahigh-speed optical communication system, and a lot of research is underway for a real-time application.
For the LDPC code, a higher level of parallel structure is possible and speed-up is easier when compared with the Turbo code. When an LDPC decoder is implemented in hardware, several issues should be considered such as a decoding algorithm, a bit error rate (BER) performance, hardware cost, and throughput. In general, the decoding algorithm of the LDPC code is known to be difficult to implement in hardware, and to have a high implementation complexity.
What is most widely used among decoding algorithms of the LDPC code is a sum-product algorithm (SPA). For the convenience of description about the SPA, a binary phase-shift keying (BPSK) modulation scheme and an additive white Gaussian noise (AWGN) channel model are assumed.
The SPA is a soft-decision message-passing algorithm, and uses a log-likelihood ratio (LLR) of a probability value as a message value. A probability of inputted bits is called an a priori probability for received bits. The a priori probability is known before an LDPC decoder is in operation, and a probability of bits transmitted after having been calculated in the LDPC decoder is called an a posteriori probability (APP). In the SPA, probabilities are expressed in an LLR. When, like this, a probability value is expressed in a logarithmic domain, a multiplication operation may be performed as an addition operation, and thus a computational complexity may be reduced.
The core of the LDPC decoding algorithm is a check node update process. For a check node update, hyperbolic functions (e.g. tanh function) of inputted LLR's are taken and then multiplied together. The check node update is performed in a method in which an inverse function of a hyperbolic function is taken for the result of the multiplication. A check node update operation is not easy to implement in that a multiplication of hyperbolic functions and an inverse function thereof need be solved. Accordingly, various methods are being studied which can process the check node update operation more easily. One of the methods is to use tangent rule and Jacobian approach.
However, there is still a need for a technology of implementing, in hardware, a highly reliable LDPC decoding algorithm for meeting the needs of various fields.